package JZ_Offer.dataStructure.queue_statck;

/**
 * 翻转单词顺序列
 * <p>
 * 牛客最近来了一个新员工Fish，每天早晨总是会拿着一本英文杂志，写些句子在本子上。
 * 同事Cat对Fish写的内容颇感兴趣，有一天他向Fish借来翻看，但却读不懂它的意思。
 * 例如，“student. a am I”。后来才意识到，这家伙原来把句子单词的顺序翻转了，
 * 正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行，你能帮助他么？
 * <p>
 * 输入：
 * "nowcoder. a am I"
 * 返回值：
 * "I am a nowcoder."
 */
public class JZ73_翻转单词顺序 {

    private static String ReverseSentence(String str) {
        if (str.length() < 4) {
            return str;
        }

        String[] stringArray = str.split(" ");
        for (int l = 0, r = stringArray.length - 1; l < r; l++, r--) {
            String temp = stringArray[l];
            stringArray[l] = stringArray[r] + " ";
            stringArray[r] = temp + " ";
        }

        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < stringArray.length; i++) {
            builder.append(stringArray[i]);
        }

        return builder.toString().trim();
    }

    private static String ReverseSentence1(String str) {
        String res = "", temp = "";
        char[] chars = str.toCharArray();
        for (char c : chars) {
            if (c == ' ') {
                res = " " + temp + res;
                temp = "";
            } else {
                temp += c;
            }
        }

        return temp + res;
    }

    public static void main(String[] args) {
        String s = ReverseSentence1("student. a am I");
        String s1 = ReverseSentence1("\" \"");
        System.out.println(s);
    }
}
